#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include "main.h"
#include "gestion_mots.h"

char afficher_menu()
{
	char choix_user=' ';
	printf("Bienvenue dans le jeu du Motus\n\n");
	printf("\t L - Lancer une partie\n");
	printf("\t O - Options\n");
	printf("\t Q - Quitter\n");
	printf("Quel est votre choix?");
	scanf("%c",&choix_user);
	return choix_user;
}

void afficher_partie(mot mot_joueur[NBLIGNE][MAX_MOT])
{
  int i=0,j=0;
  for(i=0;i<5;i++)
    {
      for(j=0;j<*taille_grille;j++)
	  {
	    if(mot_joueur[i][j].appartient==false)
		  printf("[ %c ]  ",mot_joueur[i][j].lettre);
	    else {
		      if(mot_joueur[i][j].bien_placer==false)
			  printf("[ \033[01;33m%c\033[01;37m ]  ",mot_joueur[i][j].lettre);
		      else
			  printf("[ \033[22;31m%c\033[01;37m ]  ",mot_joueur[i][j].lettre);
		    }
	    }
    printf("\n");
    }
}

void init_tablo_mot(mot mot_joueur[NBLIGNE][MAX_MOT])
{
   int i=0,j=0;
  for(i=0;i<6;i++)
      for(j=0;j<*taille_grille;j++)
	  {
	   mot_joueur[i][j].lettre=' ';
	   mot_joueur[i][j].appartient=false;
	   mot_joueur[i][j].bien_placer=false;
	  }
}

void remplir_mot(mot mot_joueur[NBLIGNE][MAX_MOT],char mot_a_mettre[9],int indice)
 {
   int i=0,lg=0;
   lg=strlen(mot_a_mettre);
    while(i<lg)
      {
      mot_joueur[indice][i].lettre=mot_a_mettre[i];
      i++;
      }
    for(;i<*taille_grille;i++)
	mot_joueur[indice][i].lettre=' ';
}
  
int main()
{
  mot userword[NBLIGNE][MAX_MOT];
  int indice=0;
  char mot_a_trouver[MAX_MOT]="";
  char mot_courant[MAX_MOT]="";
  bool win=false,continuer=false,taille_ok=false;
  taille_grille=malloc(sizeof(int));
  *taille_grille=5;
  sortie_mot_hasard(mot_a_trouver);
  printf("Mot trouvé : %s\n",mot_a_trouver);
  printf("Taille du mot a trouver : %d\n",strlen(mot_a_trouver));
  init_tablo_mot(userword);
  userword[0][0].lettre=mot_a_trouver[0];
  traitement_mot(userword,mot_a_trouver,indice);
  afficher_partie(userword);
  do
  {
	printf("Veuillez entrer un mot : ");
	scanf("%s",mot_courant);
	continuer=mot_dans_dico(mot_courant);
	taille_ok=controler_taille(mot_courant);
	if(continuer==true && taille_ok==true){
	    remplir_mot(userword,mot_courant,indice);
	    traitement_mot(userword,mot_a_trouver,indice);
	    afficher_partie(userword);
	    win=gagner(userword,mot_a_trouver,indice);
	    indice++;}
   }
   while(indice<NBLIGNE-1 && win==false);
  if(win==false)
    printf("Perdu : le mot etait : %s\n",mot_a_trouver);
  else
    printf("Bravo ! vous avez trouver le mot qui etait : %s \n",mot_a_trouver);
  return 0;
}
  
